// Excel读取函数 - 支持xlsx格式
function readExcelFile() {
    try {
        // 文件选择对话框 - 优先支持xlsx
        var excelFile = File.openDialog("请选择Excel文件", "Excel Files:*.xlsx;*.xls;*.csv");
        if (!excelFile) {
            alert("未选择文件");
            return null;
        }
        // 检查文件扩展名
        var fileName = excelFile.name.toLowerCase();
        if (fileName.indexOf('.xlsx') > -1) {
            // 直接读取xlsx文件
            return readXLSXFile(excelFile);
        } else if (fileName.indexOf('.xls') > -1) {
            // 对于老版本Excel文件，建议转换
            alert("检测到老版本Excel文件(.xls)，建议另存为.xlsx格式以获得更好的兼容性。\n\n或者选择CSV格式作为备选方案。");
            return readXLSXFile(excelFile); // 尝试读取
        } else if (fileName.indexOf('.csv') > -1) {
            // 读取CSV文件作为备选
            return readXLSXWithFileAPI(excelFile);
        } else {
            alert("不支持的文件格式，请选择Excel文件(.xlsx)或CSV文件(.csv)");
            return null;
        }
    } catch (e) {
        alert("读取文件时出错: " + e.message);
        return null;
    }
}

#include "./xlsx.extendscript.js";

function readExcelFile() {
    // 文件选择对话框
    var file = File.openDialog("选择Excel文件", "*.xlsx;*.xls;*.csv");
    if (!file) return null;
    
    // 读取工作簿
    var workbook = XLSX.readFile(file.absoluteURI);
    
    // 获取第一个工作表
    var sheetName = workbook.SheetNames[0];
    var worksheet = workbook.Sheets[sheetName];
    
    // 转换为数组
    var data = XLSX.utils.sheet_to_json(worksheet, {header: 1});
    
    return data;
}


// 读取XLSX文件函数 - 使用COM对象（仅Windows）
function readXLSXFile(file) {
    try {
        return readXLSXWithCOM(file);
    } catch (e) {
        alert("读取Excel文件失败: " + e.message + "\n\n建议将Excel文件另存为CSV格式后重试。");
        return null;
    }
}

// Windows系统使用COM对象读取Excel
function readXLSXWithCOM(file) {
    try {
        var excel = new ActiveXObject("Excel.Application");
        excel.Visible = false;
        excel.DisplayAlerts = false;
        var workbook = excel.Workbooks.Open(file.fsName);
        var worksheet = workbook.Worksheets(1); // 读取第一个工作表
        var data = [];
        var row = 1;
        // 读取数据直到遇到空行
        while (true) {
            var cell1 = worksheet.Cells(row, 1).Value;
            var cell2 = worksheet.Cells(row, 2).Value;
            if (!cell1 && !cell2) {
                break; // 遇到空行停止
            }
            if (cell1 && cell2) {
                data.push([String(cell1).trim(), String(cell2).trim()]);
            }
            row++;
            // 防止无限循环
            if (row > 10000) {
                break;
            }
        }
        workbook.Close(false);
        excel.Quit();
        if (data.length === 0) {
            alert("Excel文件中没有找到有效的两列数据");
            return null;
        }
        alert("成功读取 " + data.length + " 行Excel数据");
        return data;
    } catch (e) {
        alert("使用COM对象读取Excel失败: " + e.message + "\n\n请确保已安装Microsoft Excel应用程序。");
        return null;
    }
}


data = readExcelFile()

// for (var i = 0; i < data.length; i++) {
//     alert(data[i][0])
// }